import requests
import json

API_KEY = "3ni6ns4chmwohGDakVc7LTPG"
SECRET_KEY = "cNGqFu5RUOVKGKfuCzQySHdLAM6ieYZ5"


def main():
    url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/address?access_token=" + get_access_token()

    payload = json.dumps({
        "text": "江西省赣州市寻乌县"
    })
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)

    print(response.text)


def get_access_token():
    """
    使用 AK，SK 生成鉴权签名（Access Token）
    :return: access_token，或是None(如果错误)
    """
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    return str(requests.post(url, params=params).json().get("access_token"))


#
# if __name__ == '__main__':
#     # main()


def getaddress():
    API_KEY = "3ni6ns4chmwohGDakVc7LTPG"
    SECRET_KEY = "cNGqFu5RUOVKGKfuCzQySHdLAM6ieYZ5"
    address = "广东省东莞市松山湖园区科苑路3号 佳禾智能科技股份有限公司"  # 广东省东莞市松山湖园区科苑路3号 佳禾智能科技股份有限公司 广东省中山市南朗镇翠享新区26号
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY}
    access_token = str(requests.post(url, params=params).json().get("access_token"))

    url = "https://aip.baidubce.com/rpc/2.0/nlp/v1/address?access_token=" + access_token
    payload = json.dumps({
        "text": address
    })
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    response = requests.request("POST", url, headers=headers, data=payload)

    str1 = str(response.text)
    print(str1)


getaddress()

# 一级省级行政区：包括省、自治区、直辖市、特别行政区；
#
# 二级地级行政区：包括地级市、地区、自治州、盟。
#
# 三级县级行政区：包括市辖区、县级市、县、自治县、旗、自治旗、林区、特区。
地址解析结果 = {'lat': 24.969447, 'detail': '', 'town': '寻乌县', 'phonenum': '', 'city_code': '360700',
                'province': '江西省',
                'person': '',
                'lng': 115.653515, 'province_code': '360000', 'text': '江西省赣州市寻乌县', 'county': '',
                'city': '赣州市',
                'county_code': '360734', 'town_code': '', 'log_id': 1751916659258796440}
# 省
province = 地址解析结果['province']
# 市
city = 地址解析结果['city']
# 县
county = 地址解析结果['county']
# 镇
if (county == '') and (地址解析结果['town'] != ''):
    print('县级为空，采用镇级')
    county = 地址解析结果['town']
elif (county == '') and (地址解析结果['town'] == ''):
    print('百度解析后县级和镇级都为空,解析失败,直接退出')

province = province.replace('省', '').replace('自治区', '').replace('市', '').replace('特别行政区','')
city = city.replace('市', '').replace('区', '').replace('自治州', '').replace('盟', '')
county = county.replace('区', '').replace('市', '').replace('县', '').replace('自治县', '').replace('旗', '').replace(
    '自治旗', '').replace('林区', '').replace('特区', '').replace('街道','').replace('镇','').replace('乡','').replace('民族乡','').replace('苏木','').replace('民族苏木','').replace('县辖区公所','')
print(province, city, county)